package com.funcablaze.component.control;

import com.funcablaze.func.Color;

public abstract class Graphic {
	protected Color color = new Color(255, 255, 255, 0);
	protected float lineWidth = 1.0f;
	protected boolean fillMode = true;
	
	/**
	 * 线条
	 * @param x1 起点x坐标
	 * @param y1 起点y坐标
	 * @param x2 终点x坐标
	 * @param y2 终点y坐标
	 */
	public abstract void drawLine(float x1, float y1, float x2, float y2);
	
	/**
	 * 矩形
	 * @param x      x坐标
	 * @param y      y坐标
	 * @param width  宽度
	 * @param height 高度
	 */
	public abstract void drawRect(float x, float y, float width, float height);
	
	/**
	 * 圆
	 * @param cx       x坐标
	 * @param cy       y坐标
	 * @param radius   半径
	 * @param segments 分段数
	 */
	public abstract void drawCircle(float cx, float cy, float radius, int segments);
	
	/**
	 * 设置颜色
	 * @param color 颜色
	 */
	public void setColor(Color color) {
		this.color = color;
	}
	
	/**
	 * 设置线宽
	 * @param width 线宽
	 */
	public void setLineWidth(float width) {
		this.lineWidth = width;
	}
	
	/**
	 * 切换填充模式
	 * @param fill true为填充，false为描边
 	 */
	public void setFillMode(boolean fill) {
		this.fillMode = fill;
	}
}
